This disclosure relates generally to facilitating content item collaboration, and particularly to allowing multiple users to simultaneously and collaboratively edit content items in content management system.
A content management system permits multiple remotely located client devices to store content items in an online data repository and then synchronize the content items with multiple other devices. A client device stores local copies of content items. When content items are added, deleted, or edited on the client device, these modifications are sent to the content management system for storage and synchronization with other devices. To interact with a content item, users typically execute a native application on the client device to view and modify the content item. Modifications to a content item may be synchronized with the content management system separately from the execution of the native application by transmission of file and block level information for the content item.
Accordingly, multiple users may use respective devices to separately view and edit a particular content item. Typically, such users view and edit their own local copies of the content item; if two or more users are editing a content item the same time, this results in multiple different instances of the content item, rather than a single instances that contains all of the edits from the various users. Even if the multiple users edit the content item at different times to avoid these problems, it is nonetheless difficult for the users identify which changes are made by other users, to determine if they have opened the latest version of the content item, to know if other users have made changes to the content item since they last opened the content item, and so forth, especially if the underlying native application for the content item does not itself support any way of tracking changes. Such an environment where multiple users are separately viewing and editing a content item can lead to confusion and other inefficiencies.